我知道这应该是一个超级简单的问题,但我已经为这个概念挣扎了一段时间了。 我的问题是,如何在C#中链接构造函数? 我在上第一节OOP课,所以我只是在学习。我不明白构造函数链接是如何工作的,也不知道如何实现它,甚至不知道为什么它比只做没有链接的构造函数更好。 我希望能举一些例子并加以解释。 那么如何将它们链接起来呢? 我知道有两种说法:
public SomeClass this: {0} public SomeClass { someVariable = 0 }
但是你怎么用三、四等等来做呢? 同样,我知道这是一个初学者的问题,但我正在努力理解这一点,我不知道为什么。
您可以使用标准语法(像使用方法一样使用’this’)来选择重载, inside the class:
class Foo { private int id; private string name; public Foo() : this(0, "") { } public Foo(int id, string name) { this.id = id; this.name = name; } public Foo(int id) : this(id, "") { } public Foo(string name) : this(0, name) { } }
then:
Foo a = new Foo(), b = new Foo(456,"def"), c = new Foo(123), d = new Foo("abc");
Note also:
base(...)
base()
For “why?”:
SomeBaseType(int id) : base(id) {...}
Note that you can also use object initializers in a similar way, though (without needing to write anything):
SomeType x = new SomeType(), y = new SomeType { Key = "abc" }, z = new SomeType { DoB = DateTime.Today };